In the field of chemistry, molecular orbital method, molecular dynamics method, Monte Carlo method and the like are available as methods for analyzing states and behaviors of molecules numerically. Of these methods, the ab initio molecular orbital calculation method intends to describe behaviors of electrons in molecule in quantum mechanics based upon the first principle. Therefore, this method is evaluated as a base of molecular simulation and is considered as an important method that is useful for analyzing material structures and chemical reactions in detail from an industry standpoint.
In the ab initio molecular orbital calculation, one or a plurality of basis functions are prepared for single atom. These basis functions are represented as reciprocal numbers of exponential functions whose exponential factor is defined as multiplying empirical constants with square of distance between atomic nucleus and orbital electrons comprising molecule. The linear combination of these basis functions may describe wave functions within molecule, i.e. molecular orbital.
A major processing in an ab initio molecular orbital calculation method is to determine linear combination coefficients of basis functions in the molecular orbital. Such calculation needs a calculation amount and a storage capacity proportional to biquadrate of number of basis functions. Accordingly, at present, the ab initio molecular orbital calculation method is applied to only molecular systems of a scale of approximately 100 atoms at best. Development of calculation systems specially designed for the ab initio molecular orbital calculations and which will be useful as application to molecule systems of scale of several 1000 s of atoms is indispensable for realizing molecular solution of life process/chemical development more clearly.
As examples of calculation systems specially designed for the ab initio molecular orbital calculations of large scale, there are known systems that had been described in a literature 1 (“The Architecture of a Molecular Orbital Calculation Engine (MOE)”, written by Shirakawa et. al. in Technical Reports of the Institute of Electronics, Information and Communication Engineers, Vol. CPSY96-46, No. 5, pp. 45-50, 1996) or a literature 2 (“PPRAM-MOE:A Processing Node LSI of the Molecular Orbital Calculation Engine (MOE)” written by Inabata et. al. in Technical Reports of the Institute of Electronics, Information and Communication Engineers, Vol. CPSY98-21, No. 4, pp. 77-84, 1998).
The calculation systems described in these literatures are parallel processing systems comprising a host computer and 100 processors (in the following descriptions, processor for use in parallel processing will be referred to as a “processor element”) connected to the host computer through a common bus and intend to execute the ab initio molecular orbital calculation at high speed, for example.
Because these systems include parallel processor elements that are high in processor capabilities and the whole system can be realized by low costs, it is possible to provide calculation systems that are excellent in cost performance.
When a calculation amount is vehement as in ab initio molecular orbital calculation, it is important that ab initio molecular orbital calculation can be made at higher speed by using a plurality of processor elements for use in parallel processing efficiently. In particular, in the systems that had been described in the above-described literatures, since the respective processor elements communicate with the host computer through the common bus and execute calculations while they are transmitting and receiving necessary data between them and the host computer, to make processing become efficient by reducing a communication standby time in the respective processor elements as much as possible is important for realizing high-speed processing.
However, when jobs are formed and assigned to parallel processor elements with respect to the ab initio molecular orbital calculation simply, since calculation amount (calculation time and traffic) differs at every job, communication overhead (standby time) is produced. There then arises a problem that improvements of throughput proportional to the number of processor elements cannot be obtained.
As the number of processor elements for use in parallel processing increases, a total amount of data transmitted and received between the host computer and the processor elements is not changed but throughputs of the processor elements increase in proportion to the number of the processor elements. As a consequence, traffic that should be made within a constant time (average communication time) increases. If the number of the processor elements increases in excess of a certain number, then the average traffic will exceed throughput of a communication network (communication performance). This is one of the causes to produce communication overhead.
When communication load is unequally produced, from a time standpoint, such that communication requests concentrate within a short time and a total traffic exceeds communication performance of communication network temporarily, communication overhead is produced, which as a result causes parallel efficiency to be degraded. This trouble occurs when average traffic is not beyond communication performance of communication network as well.
To decrease resultant total traffics and to make occurrence of communication load become uniform from a time standpoint (distribution of communication load from a time standpoint) are indispensable for making efficient processing in a parallel computer.
If a plurality of jobs is those in which calculation amount (calculation time: this calculation contains conversion processing using ROM (Read Only Memory). In this specification, calculation and operation are used as synonyms) and traffic (communication time) are equal, parallel processing can be made by assigning jobs to the respective processor elements without producing communication overhead.
A literature 3 (official gazette of Japanese laid-open patent application No. 5-324581) describes a load distribution method for making calculation load become uniform when calculation of many-body problem is processed in a parallel processing fashion. The load distribution method that had been described in the literature 3 assumes that sizes of respective jobs are all equal. Accordingly, calculation loads are made equal by making the number of jobs assigned to processor elements become equal.
In the ab initio molecular orbital calculation, however, the number of calculation loops differs at every job and traffic provided by difference of data amounts obtained from the host computer is also different. There then arises a problem that calculation loads cannot be made equal only by making the number of jobs become equal.
In addition to the above-described literatures, a literature 4 (official gazette of Japanese laid-open patent application No. 6-35870), a literature 5 (official gazette of Japanese laid-open patent application No. 6-243112), a literature 6 (official gazette of Japanese laid-open patent application No. 7-295942), a literature 8 (official gazette of Japanese laid-open patent application No. 8-185377) and a literature 9 (official gazette of Japanese laid-open patent application No. 10-240698) had disclosed load distribution methods required when a plurality of processor elements make parallel processing).
Since the load distribution methods that had been described in these literatures 4, 5, 6, 7 and 9, however, have measured or estimated the load states of the processor elements and execute scheduling of jobs, they need functions specially prepared for measuring or estimating the load states of the processor elements and also need additional processing for measuring or estimating the load states of the processor elements.
Moreover, although the distribution calculation system that had been described in the literature 8 discloses processing in which a distribution system is separated into groups having equal capability and load distribution is made at the unit of groups, since distribution of communication load is not considered, there arises a problem that communication overhead increases unavoidably.
In view of the aforesaid aspect, it is an object of the present invention to provide a job assignment method in which a specially-designed mechanism need not be provided and loads can be made equal by a simple method even when calculation loads and communication loads differ at every job and in which efficient parallel processing is made possible and processing time of the whole system can be reduced.